草庐IT

c++ - C 和 C++ 中 WINAPI 的区别

全部标签

c++ - winapi - Hook 应用程序的任务栏选项卡事件

当用户左键/右键单击应用程序的tackbar选项卡时,我无法挂接发送的事件消息。我已经尝试实现OnNcLButtonDown等,但是当我点击应用程序的选项卡时,没有触发任何事件。是否有可能的COM解决方案? 最佳答案 有一条未记录的Windows消息:代码0x0313,当用户右键单击应用程序的任务栏按钮时发送。不知道它是否稳定Hook。 关于c++-winapi-Hook应用程序的任务栏选项卡事件,我们在StackOverflow上找到一个类似的问题: htt

c++ - winapi - 清除 CBitmap 的区域

我有一个32位的CBitmap缓冲区,我在上面做AlphaBlend事情。但是我想知道是否有一种方法可以完全“清除”CBitmap的矩形区域(如将特定区域中像素的所有Alpha值设置为0或完全清除该区域)。我不能使用GDI+! 最佳答案 没有“清除”位图这样的事情。您只需更改像素的颜色。如果将“清晰”定义为纯黑色,则将像素设置为黑色。最简单的方法是使用CDC::FillRect. 关于c++-winapi-清除CBitmap的区域,我们在StackOverflow上找到一个类似的问题:

c++ - 绘画后winapi窗口不刷新

您好,我用这个创建了一个窗口:WNDCLASSEXWndClass={0};if(WndClass.cbSize==0){WndClass.cbSize=sizeof(WNDCLASSEX);WndClass.style=CS_DBLCLKS;WndClass.lpfnWndProc=WindowProcedure;WndClass.cbClsExtra=0;WndClass.cbWndExtra=0;WndClass.hInstance=GetModuleHandle(NULL);WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);WndCla

windows - 如何在 Pascal Script/Inno Setup 中使用 WinAPI 中的 PathCombine()?

我正在尝试了解如何使用PascalScript/InnoSetup中的WinAPI函数。我没有找到太多代码示例如何去做,而且我不是Pascal程序员。这是我到目前为止所做的:导入函数functionPathCombine(pszPathOut:PChar;pszPathIn:PChar;pszMore:PChar):PChar;external'PathCombineA@Shlwapi.dllstdcall';并像这样使用它:functionInitializeSetup():Boolean;vara,b,c:PChar;s:string;beginSetLength(s,256);{

c - c中串口读取,使用WinApi函数; WaitCommEvent 失败

我尝试用C语言编写一个基于事件的小型应用程序以读取串行端口(来源如下)。我的程序是使用WinApi函数。comport.c具有用于处理COM端口(打开、读取、写入)的函数,utils.c具有一些辅助函数。我的程序总是产生以下输出:COM1isselectedtobelistened.GetCommMaskresult:0x00000029(EV_RXCHAR:0x0001,EV_CTS:0x0008,EV_RLSD:0x0020)Pressanykeytoproceed...I/Oispending(WaitCommEvent)...I/Oispending(WaitCommEvent

windows - 在 WinAPI 中设置选项卡索引/默认按钮

我有一个小型Windows应用程序,其中显示了一个对话框。在该对话框中,我有2个按钮“确定”和“取消”。我想在该对话框中将“确定”按钮设置为默认按钮,以便在按下回车键时我们可以直接进行处理。IDD_DOMAINVALIDATORDIALOGEX0,0,247,180STYLEDS_SETFONT|DS_MODALFRAME|DS_3DLOOK|DS_CENTER|WS_POPUP|WS_VISIBLE|WS_CAPTION|WS_SYSMENUEXSTYLEWS_EX_TOPMOSTFONT8,"MsShellDlg",0,0,0x0BEGINLTEXT"Domain",IDC_STA

c++ - 使用 C++ WinAPI 在 Windows 10 上设置亮度

我正在尝试在Windows10机器上设置亮度。显示器似乎不支持setMonitorBrightness,而setDeviceGammaRamp会改变Gamma、白点等,所以我尽量不使用它。我正在尝试使用IOCTL_VIDEO_SET_DISPLAY_BRIGHTNESS控件让它工作。当我使用CreateFile()获取监视器句柄时,我检查该句柄是否无效并且没有问题。但是当我使用IOCTL_VIDEO_SET_DISPLAY_BRIGHTNESS调用DeviceIoControl()时,我得到了ERROR_INVALID_HANDLE(错误6)。typedefstruct_DISPLAY

c++ - 如何处理 win32 winapi 中无效绘制的 ComboBox 控件?

我遇到了使用WinAPI无效绘制ComboBox的问题。当您最小化应用程序并在未隐藏ComboBox控件的选择后恢复它时,它看起来像这样:如您所见,OK按钮获得了焦点,但ComboBox的选择仍未隐藏。当控件失去输入焦点时,ComboBox的正常行为会隐藏选择。代码:#defineWIN32_MEAN_AND_LEAN#include#include#include#include#includestructwindow_context{HINSTANCE_instance;HWND_window;HWND_combo_box2;HWND_ok_button;window_contex

c++ - 如何获取hooked winapi函数的调用后参数?

对于这个例子,我说的是HookBeginPaint(),我Hook很好,我通常可以访问调用前的所有内容......HDCWINAPIMine_BeginPaint(HWNDhWnd,LPPAINTSTRUCTlpPaint){//dostuffhere,inspectingPRE-CALLlppaintstructetc...returnfpBeginPaint(hWnd,lpPaint);}我正在寻找一种方法来检查这个lpPaint结构调用后,我该怎么做? 最佳答案 HDCWINAPIMine_BeginPaint(HWNDhWn

c - 如何使用 C 和 WinAPI 将包含特殊字符的文本复制到剪贴板?

我正在尝试制作将文本​​复制到剪贴板的小c程序。我在这个网站上发现了这个问题。程序代码:constchar*output="Test";constsize_tlen=strlen(output)+1;HGLOBALhMem=GlobalAlloc(GMEM_MOVEABLE,len);memcpy(GlobalLock(hMem),output,len);GlobalUnlock(hMem);OpenClipboard(0);EmptyClipboard();SetClipboardData(CF_TEXT,hMem);CloseClipboard();此程序会将文本复制到剪贴板。但我